#include "Stack.h"
#include "Coordinate.h"
#include "Map.h"

using namespace std;

const char *get_dir(Coord<int> &start, Coord<int> &end);

void print_path_dfs(Stack<Coord<int> > &path);

void reverse_stack(Stack<Coord<int> > &src, Stack<Coord<int> > &des);

bool dfs(Coord<int> const &curr,
         Coord<int> const &end,
         Stack<Coord<int> > &stk,
         Map<int> &visited,
         Map<int> const &maze);